As computers and computer networks become more prevalent in our society, media distributors more frequently employ computer network channels rather than traditional channels such as television or radio for the distribution of information. Digital distribution of streaming media allows users throughout the world to access media information via the Internet in a timely and efficient manner.
Streaming media, such as streaming audio or video data, comprises media data that is structured and processed essentially in one continuous flow. Streaming data can be contrasted with other data such as downloaded data. The streaming of data typically entails a one-way transmission to the recipient machine, where several seconds of the data stream may be buffered to account for the delays and variability inherent in network packet transmission and receipt. A data download, on the other hand, entails receiving and storing an entire file or other discrete data portion for later use.
In a network environment, the transmission and receipt of data over the network invariably consumes network resources such as network bandwidth and sender and recipient CPU time. To this end, it is often desirable to minimize the amount of network traffic generated. Typically, for web content, a copy of the relevant data may be cached at a proxy or other location so that subsequent requests for the same data can be served from cache rather than from the original server of the information.
For streaming media, caching has proven to be more difficult. In particular, some technologies extract a cost for caching of streaming media, so that although caching may inherently provide benefits, these benefits could be largely offset by the high cost of caching. As one example, in contrast to typical HTTP proxy technology, some streaming technologies do not allow read-while-write caching, but instead require that the cache be served a second copy of the material received over a second connection to the relevant server. Such limitations are due to the generally more complex structure of streaming data. For example, streaming media may embody multiple bit rates, partial content representations such as for fast-forwards, and so forth.